Reference
- 문제 출처 - HackerRank
- 파이썬 연습 - Practice - Python
개인적인 생각과 상상으로 작성한 내용들이 포함되어 있습니다
문제를 풀고 Discussion Tab을 참고하며 코드 스타일을 개선하려고 노력하고자 합니다
HackerRank
Subdomain
- ~~Introduction~~
- ~~Basic Data Types~~
- ~~Strings~~
- ~~Sets~~
- ~~Math~~
- ~~Itertools~~
- ~~Collections~~
- ~~Date and Time~~
- ~~Errors and Exceptions~~
- ~~Classes~~
- ~~Built-Ins~~
- ~~Python Functionals~~
- ~~Regex and Parsing~~
- ~~XML~~
- ~~Closures and Decorators~~
- <strong style="color:blue">Numpy</strong>
- ~~Debugging~~
드디어 파이썬 끝냈다!!
Numpy
Arrays
문제 : float형 원소들을 가지는 numpy 배열을 만드는 문제
입력 : 배열에 들어갈 원소들
출력 : 원소들을 거꾸로 출력하며 float형으로 바꾼다
numpy.array()
안에서 타입 변환이 가능하다
import numpy |
Shape and Reshape
문제 : 배열의 구조를 바꾸는 문제
입력 : 9개의 정수들
출력 : 3x3 구조로 배열을 수정
numpy.shape()
함수를 사용하면 원본 배열을 수정하게 된다
import numpy |
하지만 numpy.reshape()
함수는 새로운 배열을 만들기 때문에 원본 데이터를 건드리지 않는다
import numpy |
Transpose and Flatten
문제 : 전치 행렬(transpose)과 다차원을 1차원으로 반환하는(flatten) 문제
입력 : 행렬 크기 N, M; 행렬 입력;
출력 : transpose array; flatten;
import numpy |
Concatenate
문제 : concatenate 함수를 사용해 NxP 행렬과 MxP 행렬을 합치는 문제
입력 : N, M, P; NxP 행렬; MxP 행렬;
출력 : (N + M) * P 크기의 행렬을 출력
axis=0 을 기준으로 합친다
import numpy |
Zeros and Ones
문제 : 영행렬과 1로 채운 행렬을 구하는 문제
입력 : 행렬의 크기
출력 : numpy.zeros; numpy.ones;
3 3 3 |
[[[0 0 0] |
tuple로 묶어서 shape로 정리하는 것이 깔끔함
import numpy |
Eye and Identity
문제 : 주 대각 원소들(main diagonal elements)이 1인 단위행렬을 구하는 문제
입력 : 행렬의 크기 N, M;
주의 : identity 함수는 정방행렬(행과 열의 크기가 같음)에 사용된다. 즉, 여기서는 eye 함수를 사용
numpy 출력할 때 공백이 하나 더 있어서 프린트 옵션을 추가하지 않으면 오류 처리됨
import numpy |
Array Mathematics
문제 : 사칙연산 결과를 구하는 문제
입력 : 행렬의 크기 N, M; (NxM 크기의)행렬 A; (NxM 크기의)행렬 B;
출력 : +, -, *, /, %, ** 의 결과를 차례로 출력
1 4 |
[[6 8 10 12]] |
나눗셈은 그냥 divide()가 아닌 floor_divide() 사용해야함
import numpy |
Linear Algebra
문제 : 행렬식을 구하는 문제
입력 : 행렬 크기 N; NxN 크기의 행렬;
출력 : 행렬식(determinant)
legacy 를 1.13으로 변경해 줘야한다
import numpy |